package com.ProjetEISD.extraction;

import java.io.Serializable;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

// contenu Serializable pour l'enregistrer pour une utilisation ultérieure
public class Match implements Serializable {

	/**
	 * 
	 */
	private GregorianCalendar date; // au format JJ/MM/AAAA
	private String equipe1;
	private String equipe2;
	private String vainqueur;
	private Vector<String> buteursEquipe1;
	private Vector<String> buteursEquipe2;
	private int scoreEquipe1;
	private int scoreEquipe2;
	
	private static final long serialVersionUID = 1L;
	
	public Match()
	{
		//date=new Date();
		equipe1="";
		equipe2="";
		vainqueur="";
		buteursEquipe1=new Vector<String>();
		buteursEquipe2=new Vector<String>();
		scoreEquipe1=0;
		scoreEquipe2=0;
	}

	public Vector<String> getButeursEquipe1() {
		return buteursEquipe1;
	}

	public void setButeursEquipe1(Vector<String> buteursEquipe1) {
		this.buteursEquipe1 = buteursEquipe1;
	}

	public Vector<String> getButeursEquipe2() {
		return buteursEquipe2;
	}

	public void setButeursEquipe2(Vector<String> buteursEquipe2) {
		this.buteursEquipe2 = buteursEquipe2;
	}

	public GregorianCalendar getDate() {
		return date;
	}

	public void setDate(GregorianCalendar daterss) {
		System.out.println("setDate="+daterss.toString());
		this.date = daterss;
	}
	
	public void setDate(String str)
	{
		System.out.println("setDate(str)="+str);
		Pattern patt=Pattern.compile("(\\d+)/(\\d+)/(\\d+)");
		Matcher m=patt.matcher(str);
		if (m.find())
		{
			date=new GregorianCalendar(Integer.parseInt(m.group(3)),Integer.parseInt(m.group(2)),Integer.parseInt(m.group(1)));
			System.out.println("date set (str)"+date.toString());
		}
	}
	

	public String getEquipe1() {
		return equipe1;
	}

	public void setEquipe1(String equipe1) {
		this.equipe1 = equipe1;
	}

	public String getEquipe2() {
		return equipe2;
	}

	public void setEquipe2(String equipe2) {
		this.equipe2 = equipe2;
	}

	public String getVainqueur() {
		return vainqueur;
	}

	public void setVainqueur(String vainqueur) {
		this.vainqueur = vainqueur;
	}

	public int getScoreEquipe1() {
		return scoreEquipe1;
	}

	public void setScoreEquipe1(int scoreEquipe1) {
		this.scoreEquipe1 = scoreEquipe1;
	}

	public int getScoreEquipe2() {
		return scoreEquipe2;
	}

	public void setScoreEquipe2(int scoreEquipe2) {
		this.scoreEquipe2 = scoreEquipe2;
	}
	
	public String toString()
	{
		String res="";
		res+=Constants.DEBUT;

		res+=Constants.EQUIPE1;
		res+=getEquipe1()+"\n";

		res+=Constants.EQUIPE2;
		res+=getEquipe2()+"\n";

		res+=Constants.VAINQUEUR;
		res+=getVainqueur()+"\n";

		res+=Constants.SCORE;
		res+=getScoreEquipe1()+":"+getScoreEquipe2()+"\n";
		
		Vector<String> b1 =getButeursEquipe1();
		res+=Constants.BUTEURS_EQUIPE1;
		res+=b1.toString()+"\n";
		
		Vector<String> b2 =getButeursEquipe2();
		res+=Constants.BUTEURS_EQUIPE2;
		res+=b2.toString()+"\n";

		res+=Constants.DATE;
		//res+=date.toString()+"\n";
		if (date!=null)
		{
			
			res+=date.get(date.DAY_OF_MONTH)+" / "+date.get(date.MONTH)+" / "+date.get(date.YEAR);
			//System.out.println("date grégorienne:"+date);
			
		}
		
		res+="\n";
		
		res+=Constants.FIN;
		
		return res;
	}

}
